﻿using System;
using Shell.Build;

namespace Shell
{
    public abstract class ShellExtensionContext
    {
        public abstract IShell Shell { get; }

        public abstract IBuildChainMaker<BuildStage> BuildChainMaker { get; }

        public abstract IBuildPolicyCollection BuildPolicies { get; }

        public abstract ILifetimeContainer LifetimeContainer { get; }

        public abstract event EventHandler<TypeRegisterEventArgs> TypeRegistered;

        public abstract event EventHandler<InstanceRegisterEventArgs> InstanseRegistered;
    }
}
